package com.gkj.blog.persistence.mapper;

import com.gkj.blog.business.vo.condition.ArticleConditionVO;
import com.gkj.blog.framework.object.BaseMapper;
import com.gkj.blog.persistence.po.Article;
import org.springframework.stereotype.Repository;

import java.util.Date;
import java.util.List;

@Repository
public interface ArticleMapper extends BaseMapper<Article> {
    /**
     *
     * 条件查询
     * 可根据typeid，tagid（单个标签），tagids（多个标签(includeAllTags是否全部包含)）
     * <br>，keywords，top，status，recommmended，random乱序
     * 默认排序top、recommended、createtime
     * @param vo
     * @return
     */
    List<Article> findPageBreakByCondition(ArticleConditionVO vo);

    /**
     * 获取上一篇和下一篇(Article中关联两个Article：prev & next)时间顺序
     *  查取属性：id、title、cratetime
     * @param insertTime
     * @return
     */
    List<Article> getPrevAndNextArticles(Date insertTime);

    /**
     * 获取热门文章
     *
     * @return List<Article>
     */
    List<Article> listHotArticle();

    /**
     * 是否存在文章
     *
     * @param id
     * @return
     */
    Integer isExist(Long id);

    /**
     * 获取封面图片素材
     *
     * @return
     */
    List<String> listMaterial();
}